// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.ast.statement.SQLCreateStatement;
// import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;
#pragma once
#include "OracleStatementImpl.h"
#include "../../../../ast/statement/SQLCreateStatement.h"

class OracleCreateSynonymStatement
    : virtual public OracleStatementImpl,
      virtual public SQLCreateStatement
{
public:
  BOOL_ptr orReplace;
  SQLName_ptr name;
  BOOL_ptr isPublic_;
  SQLName_ptr object;

  SHAREDOBJECT(OracleCreateSynonymStatement);
  // @Override
  void accept0(OracleASTVisitor_ptr visitor);

  BOOL_ptr isPublic();

  void setPublic(BOOL_ptr value);

  SQLName_ptr getName();

  void setName(SQLName_ptr name);

  SQLName_ptr getObject();

  void setObject(SQLName_ptr object);

  BOOL_ptr isOrReplace();

  void setOrReplace(BOOL_ptr orReplace);
};
